package com.ejlchina.cashier;

import javax.servlet.http.HttpServletRequest;

/**
 * 
 * 收款管理器
 * 
 * @author Troy.Zhou
 *
 */

public interface CashierManager {

	
	/**
	 * 进件商户
	 * @param merAddReq 进件商户请求
	 * @return 商户结果
	 */
	MerRes addMerchant(MerAddReq merAddReq);
	
	/**
	 * 补充商户信息
	 * @param merAddExtReq 补充商户信息请求
	 * @return 商户结果
	 */
	MerRes addMerchantExt(MerAddExtReq merAddExtReq);
	
	/**
	 * 修改商户信息
	 * @param merEditReq 修改商户信息请求
	 * @return 商户结果
	 */
	MerRes editMerchant(MerEditReq merEditReq);
	
	
	/**
	 * 修改商户费率
	 * @param merEditRateReq 修改商户费率请求
	 * @return 商户结果
	 */
	MerRes editMerchantRate(MerEditRateReq merEditRateReq);
	
	/**
	 * 获取收款器
	 * @param bizName 业务名称
	 * @return 收款器
	 */
	Cashier getCashier(String bizName);
	
	/**
	 * 获取代付器
	 * @return 代付器
	 */
	Payer getPayer();
	
	/**
	 * 解析商户通知数据
	 * @param request 通知请求
	 * @return 商户通知数据
	 */
	MerNotifyData resolveMerNotify(HttpServletRequest request);
	
	/**
	 * 解析收款通知数据
	 * @param request 通知请求
	 * @return 收款通知数据
	 */
	CashNotifyData resolveCashNotify(HttpServletRequest request);
	
	/**
	 * 解析代付通知数据
	 * @param request 通知请求
	 * @return 代付通知数据
	 */
	PayNotifyData resolvePayNotify(HttpServletRequest request);
	
}

